/*
 * 总路由
 */
const express = require('express');
// var indexRouter = require('./routes/index');
const usersRouter = require('./users');
const loginController = require('./controller/LoginController');                                  // 登录模块
const registerController = require('./controller/RegisterController');                            // 注册模块
// var dianShiJiRouter = require('./routes/jiayongdianqi/dianShiJi');
const foodController = require('./controller/FoodController');                                     // 菜品模块
const userController = require('./controller/UserController');                                     // 用户模块
const foodTableController = require('./controller/FoodTableController');                           // 餐桌模块
const orderingFoodController = require('./controller/OrderingFoodController');                     // 点餐模块
const memberVipController = require('./controller/MemberVipController');                           // 会员模块

const router = express.Router();

// 文件上传请求处理，upload.array 支持多文件上传，第二个参数是上传文件数目
// 接收图片处理组件
const multer = require("multer");

// 设置图片存储路径
const storage = multer.diskStorage({
    destination: function(req, file, cb) {
        // console.log(__dirname)
        cb(null, './public/uploads');
        // 注意，linux系统上传时，默认是bin目录，所以需要通过..的方式跳转到工程目录再指向
        // 并且执行node时的路径会影响获取路径结果，上述的处理时，是在bin目录下执行的，如果其余路径执行启动服务还需要修改
        // cb(null, '../public/uploads');
    },
    filename: function(req, file, cb) {
        // 可通过自定义时间戳，让相同名称的文件，不同的名字
        cb(null, `${Date.now()}-${file.originalname}`);
    }
});

// 添加配置文件到muler对象，上传组件支持
const upload = multer({ storage: storage });
// router.post('/upload', upload.array('uploadImg', 2), uploadRouter.uploadData);  // 上传处理
// app.use('/', indexRouter);
router.get('/users', usersRouter);
router.post('/login', loginController.login);                                                                   // 登录
router.post('/register', registerController.register);                                                          // 注册

router.post('/addUser', userController.addUser);                                                                // 添加员工
router.post('/updateUserById', userController.updateUserById);                                                  // 基于主键id更新员工
router.post('/deleteUserById', userController.deleteUserById);                                                  // 基于主键id删除员工
router.get('/selectAllUser', userController.selectAllUser);                                                     // 查询所有员工
router.get('/selectUserByPhone', userController.selectUserByPhone);                                             // 基于电话phone查询员工

router.post('/addFood', upload.array('uploadImg', 2), foodController.addFood);                 // 添加菜品 带上传图片
router.post('/updateFoodById', foodController.updateFoodById);                                                  // 基于主键id更新菜品
router.post('/deleteFoodById', foodController.deleteFoodById);                                                  // 基于主键id删除菜品
router.get('/selectAllFood', foodController.selectAllFood);                                                     // 查询所有菜品
router.get('/selectFoodCount', foodController.selectFoodCount);                                                 // 根据模糊菜品查询菜品个数

router.post('/addFoodTable', foodTableController.addFoodTable);                                                 // 添加餐桌 带上传图片
router.post('/updateFoodTableById', foodTableController.updateFoodTableById);                                   // 基于主键id更新餐桌
router.post('/updateFoodTableForPeoples', foodTableController.updateFoodTableForPeoples);                       // 更新餐桌使用人数
router.post('/deleteFoodTableById', foodTableController.deleteFoodTableById);                                   // 基于主键id删除餐桌
router.get('/selectAllFoodTable', foodTableController.selectAllFoodTable);                                      // 查询所有餐桌
router.get('/selectFoodTableByNumber', foodTableController.selectFoodTableByNumber);                            // 根据餐桌编号查询某一个餐桌
router.get('/selectFoodTableCount', foodTableController.selectFoodTableCount);                                  // 根据模糊餐桌查询餐桌个数

router.post('/addOrderingFood', orderingFoodController.addOrderingFood);                                        // 添加点餐
router.post('/deleteOrderingFoodById', orderingFoodController.deleteOrderingFoodById);                          // 基于主键id删除点餐
router.post('/updateOrderingFoodById', orderingFoodController.updateOrderingFoodById);                          // 基于主键id更新点餐
router.get('/selectAllOrderingFood', orderingFoodController.selectAllOrderingFood);                             // 查询所有点餐
router.get('/selectOrderingFoodById', orderingFoodController.selectOrderingFoodById);                           // 查询指定餐桌的所有点餐
router.get('/selectOrderingFoodCount', orderingFoodController.selectOrderingFoodCount);                         // 查询点餐个数

router.post('/addMemberVip', memberVipController.addMemberVip);                                                 // 添加会员
router.post('/deleteMemberVipById', memberVipController.deleteMemberVipById);                                   // 基于主键id删除会员
router.post('/updateMemberVipById', memberVipController.updateMemberVipById);                                   // 基于主键id更新会员
router.get('/selectAllMemberVip', memberVipController.selectAllMemberVip);                                      // 查询所有会员
router.get('/selectMemberVipByPhone', memberVipController.selectMemberVipByPhone);                              // 基于手机号查询单一会员
router.get('/selectMemberVipById', memberVipController.selectMemberVipById);                                    // 查询指定手机号的会员
router.get('/selectMemberVipCount', memberVipController.selectMemberVipCount);                                  // 查询会员个数

module.exports = router;

